// import { urlEncode  } from '@/libs/fn/verify.js'
/**
 * @description 跳转到指定页面url 支持tabBar页面
 * @param {string}  url   页面路径
 * @param {object}  params 页面参数
 * @param {string}  mode  跳转类型(返回)
 * @param {object}  tool  跳转配置
 * @example  Jump('/home')  or   Jump({url:'/home',mode:2})
 */
const tools = {
	animationType: 'pop-in',
	animationDuration: 200
}
export function Jump() {
	try {
		//不是对象传参默认为返回
		if (typeof arguments[0] == 'undefined' || typeof arguments[0] == 'number') {
			const back = arguments[0] || 1;
			//#ifdef H5
			history.back(back)
			return
			//#endif
			uni.navigateBack({
				delta: back
			});
			return
		}
		if (typeof arguments[0] == 'string') {
			uni.navigateTo({
				url: arguments[0],
				...tools
			}) //保留当前页面跳转
			return
		}
		const { url, params, mode = 1 } = arguments[0]
		// 生成query参数
		const urls = `${url}`;
		//单独组成参数 处理问号
		const param = params?`${uni.$m.verify.urlEncode(params)}`:''
		//生成跳转参数
		const navParams = {
			url: urls+param,
			...tools,
		};
		switch (mode) {
			case 1:
				uni.navigateTo(navParams) //保留当前页面跳转
				break;
			case 2:
				uni.redirectTo(navParams) //关闭当前页面，跳转到应用内的某个页面。
				break;
			case 3:
				uni.reLaunch(navParams) // 关闭所有页面，打开到应用内的某个页面。
				break;
			case 4:
				uni.switchTab(navParams) // 跳转到tabBar
				break;
		}
	} catch (e) {
		console.log(e)
		//TODO handle the exception
	}
}
